/**
 * %%
 * %%
 */
package com.leehom.arch.base.reportquery;

import java.util.ArrayList;
import java.util.List;

import com.leehom.arch.base.reportquery.ReportQueryUtils.Filter;

/**
 * @类名: ChainFilter
 * @说明: 
 *
 * @author   leehom
 * @Date	 2017年8月22日 上午10:54:58
 * 修改记录：
 *
 * @see 	 
 */
public class ChainFilter implements Filter {
	
	/** 过滤器链，*/
	private List<Filter> filters;
	
	public ChainFilter(Filter... filters) {
		//
		this.filters = new ArrayList<Filter>();
		//
		for (Filter arg : filters) {  
            this.filters.add(arg);
        }  
	}

	/* (non-Javadoc)
	 * @see com.jsdz.utils.DTOUtils.Filter#accept(java.lang.String, java.lang.Object)
	 */
	@Override
	public boolean accept(String propName, Object value) {
		if(filters==null&&filters.size()==0)
			return true;
		for(Filter filter:filters) {
			if(!filter.accept(propName, value))
				return false;
		}
		//
		return true;
	}

}
